package com.huika.renrench.control.my.certification.activity;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Utils {

	/**
	 * 
	 * @description：检查输入最大的充值和提现的钱数
	 * @author zc
	 * @date 2015年1月29日 下午4:36:05
	 */
	public static boolean checkMaxMoney(String inputMoney) {
		if(inputMoney.endsWith(".") || inputMoney.equals("")) {
			return true;
		}
		String str = "^[1-9]\\d{0,4}(\\.\\d{1,2})?$";
		Pattern p = Pattern.compile(str);
		Matcher m = p.matcher(inputMoney);
		return m.matches();
	}
	
	/**
	 * 
	 * @description：获取输入字符串的长度，1个汉字等于2个
	 * @author zc
	 * @date 2015年1月30日 下午4:07:44
	 */
	public static int getInputLength(String input) {
		int count = 0;
		for(int i = 0; i < input.length(); i++) {
			if(isChinese(input.charAt(i))) {
				count += 2;
			} else {
				count += 1;
			}
		}
		return count;
	}
	/**
	 * 
	 * @description：获取在输入的时候过滤之后能够输入的内容
	 * @author zc
	 * @date 2015年2月2日 上午10:22:14
	 */
	public static String getStrFromInput(int count, String input, boolean canInputSpace) {
		StringBuffer sb = new StringBuffer();
		for(int i = 0; i < input.length(); i++) {
			char c = input.charAt(i);
			if(isChinese(c)) {
				count -= 2;
			} else {
				count -= 1;
			}
			if(count < 0) {
				break;
			} else {
				if(canInputSpace) {
					sb.append(c);
				} else {
					if(c != ' ') {
						sb.append(c);
					} 
				}
			}
		}
		return sb.toString();
	}
	/**
	 * 
	 * @description：判断是否为汉字
	 * @author zc
	 * @date 2015年2月2日 上午10:22:44
	 */
	private static boolean isChinese(char c) {
        Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
        if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
             || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
            || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
            || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
            || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
            || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
            return true;
        }
        return false;
    }
}
